home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 22 / Amiga Format AFCD22 (Jan 1998, Issue 106).iso / -seriously_amiga- / shareware / programming / other / hunk / hoppers / dice_206.hop < prev    next >
Text File  |  1997-11-17  |  8KB  |  185 lines

  1. ;*************************************************************************
  2. ;** Dice v2.06 (Freeware)                                               **
  3. ;** Contributor: L.Lucius                               Sept 11th 1995  **
  4. ;** Modified for HOp:   Thomas Richter  (thor)          Nov  1st  1997  **
  5. ;** Function:    Modify 68000 math routines to use 68020+ instructions. **
  6. ;*************************************************************************
  7.  
  8.  
  9. ;*************************************************************************
  10. ;
  11. ; Divs
  12. ;
  13. #match
  14. #code
  15. 4A81                            ;   TST.L       D1
  16. 6B08                            ;   BMI.B       000C
  17. 4A80                            ;   TST.L       D0
  18. 6B12                            ;   BMI.B       001A
  19. 6000 YYYY                       ;   BRA.W       0009
  20. 4481                            ;   NEG.L       D1
  21. 4A80                            ;   TST.L       D0
  22. 6B12                            ;   BMI.B       0024
  23. 6100 YYYY                       ;   BSR.W       0013
  24. 4480                            ;   NEG.L       D0
  25. 4E75                            ;   RTS
  26. 4480                            ;   NEG.L       D0
  27. 6100 YYYY                       ;   BSR.W       001D
  28. 4480                            ;   NEG.L       D0
  29. 4E75                            ;   RTS
  30. 4480                            ;   NEG.L       D0
  31. 6000 YYYY                       ;   BRA.W       0027
  32. #end
  33. ;
  34. ;
  35. #replace
  36. 4C41 0801                       ;   DIVSL.L     D1,D1:D0
  37. 4E75                            ;   RTS
  38. #end
  39.  
  40.  
  41.  
  42. ;*************************************************************************
  43. ;
  44. ; Divu
  45. ;
  46. #match
  47. #code
  48. 4A81                            ;   TST.L       D1
  49. 671E                            ;   BEQ.B       0022
  50. 4841                            ;   SWAP        D1
  51. 4A41                            ;   TST.W       D1
  52. 6642                            ;   BNE.B       004C
  53. 2F02                            ;   MOVE.L      D2,-(A7)
  54. 4841                            ;   SWAP        D1
  55. 2400                            ;   MOVE.L      D0,D2
  56. 84C1                            ;   DIVU.W      D1,D2
  57. 6914                            ;   BVS.B       0028
  58. 2202                            ;   MOVE.L      D2,D1
  59. 4241                            ;   CLR.W       D1
  60. 4841                            ;   SWAP        D1
  61. 7000                            ;   MOVEQ       #00,D0
  62. 3002                            ;   MOVE.W      D2,D0
  63. 241F                            ;   MOVE.L      (A7)+,D2
  64. 4E75                            ;   RTS
  65. 2200                            ;   MOVE.L      D0,D1
  66. 70FF                            ;   MOVEQ       #FF,D0
  67. 4E75                            ;   RTS
  68. 2F03                            ;   MOVE.L      D3,-(A7)
  69. 2400                            ;   MOVE.L      D0,D2
  70. 4242                            ;   CLR.W       D2
  71. 4842                            ;   SWAP        D2
  72. 84C1                            ;   DIVU.W      D1,D2
  73. 3602                            ;   MOVE.W      D2,D3
  74. 4843                            ;   SWAP        D3
  75. 4243                            ;   CLR.W       D3
  76. 3400                            ;   MOVE.W      D0,D2
  77. 84C1                            ;   DIVU.W      D1,D2
  78. 3602                            ;   MOVE.W      D2,D3
  79. 2003                            ;   MOVE.L      D3,D0
  80. 4242                            ;   CLR.W       D2
  81. 4842                            ;   SWAP        D2
  82. 2202                            ;   MOVE.L      D2,D1
  83. 261F                            ;   MOVE.L      (A7)+,D3
  84. 241F                            ;   MOVE.L      (A7)+,D2
  85. 4E75                            ;   RTS
  86. 48E7 3800                       ;   MOVEM.L     D2-D4,-(A7)
  87. 2400                            ;   MOVE.L      D0,D2
  88. 4242                            ;   CLR.W       D2
  89. 4842                            ;   SWAP        D2
  90. 84C1                            ;   DIVU.W      D1,D2
  91. 3602                            ;   MOVE.W      D2,D3
  92. 7400                            ;   MOVEQ       #00,D2
  93. 3403                            ;   MOVE.W      D3,D2
  94. C6C1                            ;   MULU.W      D1,D3
  95. 4841                            ;   SWAP        D1
  96. 3802                            ;   MOVE.W      D2,D4
  97. C8C1                            ;   MULU.W      D1,D4
  98. 4843                            ;   SWAP        D3
  99. D684                            ;   ADD.L       D4,D3
  100. 9083                            ;   SUB.L       D3,D0
  101. 6B0A                            ;   BMI.B       0078
  102. 2200                            ;   MOVE.L      D0,D1
  103. 2002                            ;   MOVE.L      D2,D0
  104. 4CDF 001C                       ;   MOVEM.L     (A7)+,D2-D4
  105. 4E75                            ;   RTS
  106. 5382                            ;   SUBQ.L      #1,D2
  107. D081                            ;   ADD.L       D1,D0
  108. 6BFA                            ;   BMI.B       0078
  109. 2200                            ;   MOVE.L      D0,D1
  110. 2002                            ;   MOVE.L      D2,D0
  111. 4CDF 001C                       ;   MOVEM.L     (A7)+,D2-D4
  112. 4E75                            ;   RTS
  113. ;
  114. ;
  115. #replace
  116. 4C41 0001                       ;   DIVUL.L     D1,D1:D0
  117. 4E75                            ;   RTS
  118. #end
  119.  
  120.  
  121. ;*************************************************************************
  122. ;
  123. ; Mods
  124. ;
  125. #match
  126. #code
  127. 4A81                            ;   TST.L       D1
  128. 6B0C                            ;   BMI.B       0010
  129. 4A80                            ;   TST.L       D0
  130. 6B18                            ;   BMI.B       0020
  131. 6100 YYYY                       ;   BSR.W       0009
  132. 2001                            ;   MOVE.L      D1,D0
  133. 4E75                            ;   RTS
  134. 4481                            ;   NEG.L       D1
  135. 4A80                            ;   TST.L       D0
  136. 6B16                            ;   BMI.B       002C
  137. 6100 YYYY                       ;   BSR.W       0017
  138. 4481                            ;   NEG.L       D1
  139. 2001                            ;   MOVE.L      D1,D0
  140. 4E75                            ;   RTS
  141. 4480                            ;   NEG.L       D0
  142. 6100 YYYY                       ;   BSR.W       0023
  143. 4481                            ;   NEG.L       D1
  144. 2001                            ;   MOVE.L      D1,D0
  145. 4E75                            ;   RTS
  146. 4480                            ;   NEG.L       D0
  147. 6100 FFFF                       ;   BSR.W       002F
  148. 2001                            ;   MOVE.L      D1,D0
  149. 4E75                            ;   RTS
  150. ;
  151. ;
  152. #replace
  153. 4C41 0801                       ;   DIVSL.L     D1,D1:D0
  154. C141                            ;   EXG         D0,D1
  155. 4E75                            ;   RTS
  156. #end
  157.  
  158.  
  159. ;*************************************************************************
  160. ;
  161. ; Mulu/Muls
  162. ;
  163. #match
  164. #code
  165. 48E7 C000                       ;   MOVEM.L     D0-D1,-(A7)
  166. 4840                            ;   SWAP        D0
  167. C0C1                            ;   MULU.W      D1,D0
  168. 4841                            ;   SWAP        D1
  169. C2EF 0002                       ;   MULU.W      0002(A7),D1
  170. D081                            ;   ADD.L       D1,D0
  171. 4840                            ;   SWAP        D0
  172. 4240                            ;   CLR.W       D0
  173. 322F 0002                       ;   MOVE.W      0002(A7),D1
  174. C2EF 0006                       ;   MULU.W      0006(A7),D1
  175. D081                            ;   ADD.L       D1,D0
  176. 508F                            ;   ADDQ.L      #8,A7
  177. 4E75                            ;   RTS
  178. ;
  179. ;
  180. #replace
  181. 4C01 0000                       ;   MULU.L      D1,D0
  182. 4E75                            ;   RTS
  183. #end
  184.  
  185.